package org.jeecg.modules.classes.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.classes.entity.CouClass;
import org.jeecg.modules.classes.po.UpGradeRise;
import org.jeecg.modules.relation.relclssubtearoom.entity.RelClassSubjectTeacher;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface IUpGradeRiseService extends IService<UpGradeRise> {

    /**
     * 批量升级班级到新的年级：批量改名，把班级名称批量替换
     * @param upGradeRise:sourceclassids 班级ids列表 targetGradeId 目标年级id
     * @return
     */
    boolean  upGradeRiseClass2NewGrade(UpGradeRise upGradeRise);

    /**
     * 批量升级班级科目教师分配到新的年级：批量复制关系表，注意重复执行时候不得产生重复数据
     * @param upGradeRise:sourceclassids 班级ids列表 targetGradeId 目标年级id
     * @return
     */
    boolean upGradeRiseRelClassSubjectTeacher2NewGrade(UpGradeRise upGradeRise);
    /**
     * 批量升级学生分班情况升级到新的年级：批量复制关系表，注意重复执行时候不得产生重复数据
     * @param upGradeRise:sourceclassids 班级ids列表 targetGradeId 目标年级id
     * @return
     */
    boolean upGradeRiseRelClassStudent2NewGrade(UpGradeRise upGradeRise);
    /**
     * 批量升级教学计划到新的年级：批量复制教学计划数据表(含子表，含关系表)，注意复制去年同期数据
     * @param upGradeRise:sourceclassids 班级ids列表 targetGradeId 目标年级id
     * @return
     */
    boolean upGradeRiseCouCoursePlan2NewGrade(UpGradeRise upGradeRise);
    /**
     * 批量升级课程表到新的年级：批量复制课数据表(含子表，含关系表)，注意复制去年同期数据/或上次数据
     * @param upGradeRise:sourceclassids 班级ids列表 targetGradeId 目标年级id
     * @return
     */
    boolean upGradeRiseCouCourseArrange2NewGrade(UpGradeRise upGradeRise);
    /**
     * 批量根据班级科目教师分配更新课程表中的老师：批量更新修改课数据中的任课老师表(含子表，含关系表)，注意根据关系表的学期学年、班级信息，找到对应班级对应的课表进行批量更新
     * @param relClassSubjectTeacherList
     * @return
     */
    public boolean upGradeRiseUpdateCourArraAtom2NewTeacherByRelClassSubjectTeacher(List<RelClassSubjectTeacher> relClassSubjectTeacherList);
}
